//p1229

//我们要做的就是接受一棵二叉树的前序遍历与后序遍历
//然后给出这棵树可能的中序遍历情况的总数

//如果一个节点只有左子树或右子树，在前序和后序遍历中无法区分是左子树还是右子树

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
char a[10002], b[10002];//分别记录前序和后序 
int main()
{
    scanf("%s\n%s", &a, &b);
    int len = strlen(a), ans = 1;
    for (int i = 0; i <= len - 2; i ++)
        for (int j = 0; j <= len - 1; j ++)
            if (b[j] == a[i] && b[j-1] == a[i+1]) ans *= 2;
    //因此每发现一次这种情况，可能的结构数量就乘以2
    cout<<ans;
    return 0; 
}
